<?php
namespace App\Util;

/**
 * 查找器
 * @author sherlock.wooton <i@wutong.me>
 * @date 2015/12/30 2:00
 */
class FindHelper {

    /**
     * 获取多维数组中的某个数组
     * @author sherlock.wooton
     * @date 2016/1/17 23:43
     * @param array $array 待查找的多维数组
     * @param int|string $compareField 用数组的哪个索引字段来与$needle进行比较
     * @param mixed $needle 需要查找的数据
     * @param bool $strict 是否使用严格模式
     * @return null|array 返回null代表没有找到符合的数组
     */
    public static function getArrayDetailByNeedle(array $array,$compareField,$needle,$strict=false){
        foreach ($array as $data) {
            $result = $strict ? $data[$compareField] === $needle : $data[$compareField] == $needle;
            if ($result)
                return $data;
        }
        return null;
    }

    /**
     * 解析模型错误消息
     * @param array $errors 模型的错误属性
     * @return string
     */
    public static function parseError(array $errors){
        $errorInfo=[];
        foreach ($errors as $k => $error) {
            $errorInfo[] = implode(",", $error);
        }
        if (count($errorInfo)>0) {
            return $errorInfo[0];
        }
        return '';
    }
}